<p>
  The java Manual says “By convention, classes that implement this interface should override Object.clone (which is protected) with a public method.”
</p>

<p>Examples:</p>
<pre>
public class Foo implements Cloneable {
  @Override
  protected Object clone() throws CloneNotSupportedException { // Violation, must be public
  }
}

public class Foo implements Cloneable {
  @Override
  protected Foo clone() { // Violation, must be public
  }
}

public class Foo implements Cloneable {
  @Override
  public Object clone() // Ok
}
</pre>
